package com.ztr.zdypost.api;

import com.ztr.zdypost.custom.RequestPostSingleParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;

/**
 * <p>
 * 测试api
 * </p>
 */
@Slf4j
@RestController
@RequestMapping("/test")
@Api(tags = "测试api")
public class TestController {

    /**
     * 通过POST方法测试接收单个参数。
     * 此方法演示了如何使用Spring MVC的@RequestMapping注解处理POST请求。
     * 使用@ApiParam注解来说明参数的用途和名称。
     * 使用@ApiOperation注解来说明该方法的功能。
     * 使用@RequestPostSingleParam注解来限制请求体只能包含一个参数。
     *
     * @param id 接收的整数参数，代表请求中的ID值。
     * @return 返回接收到的ID值。
     */
    @PostMapping("")
    @ApiOperation("测试post请求接收单个参数")
    public Integer testPostParam(@ApiParam("id值") @RequestPostSingleParam Integer id) {
        // 记录日志，用于调试和监控
        log.info("id: 【{}】", id);
        return id;
    }

}
